A network element can include two different planes that are used to process network traffic, a control plane and a data plane. The data plane receives, processes, and forwards network traffic using various configuration data (e.g., forwarding, security, quality of service (QoS), and other network traffic processing information). For example, for each received packet of the network traffic, the data plane determines a destination address of that packet, looks up the requisite information for that destination in one or more tables stored in the data plane, and forwards the packet out the proper outgoing interface. The control plane controls these processing functions of the data plane by configuring the data plane, managing data collected by the data plane, monitoring the data plane, and other management functions. The control plane gathers the configuration data from different sources (e.g., locally stored configuration data, via a command line interface, or other management channel such as Simple Network Management Protocol (SNMP)) and configures the data plane using this configuration data.
In addition, the control plane will include multiple central processing units (CPUs) to control the processing functions of the network element. There can be an active CPU that is actively controlling the processing functions of the network element and a standby CPU that takes over control of the network element processing in the event of a CPU failure of the active CPU. The active CPU could fail due to a hardware failure of the CPU itself or a component that the active CPU uses (e.g., memory, controller, bus, or another hardware component). Alternatively, the active CPU may fail due to a software failure.
In the event of the active CPU failure, the standby CPU takes over the control of the network element processing functions. In this case, the data plane can continue to operate while the standby CPU takes control. In order for the standby CPU to assume control of the network element processing functions, the standby CPU of the control plane will need access to the hardware tables of the data plane. The control plane uses these hardware tables to configure the data plane, monitor the data plane, gather statistics of the data plane, and other functions. In order to access the hardware tables, the standby CPU builds a software index that allows the standby CPU to access the data in the hardware tables. The standby CPU can either build the software index from scratch upon a CPU failure or can actively build and maintain the software index prior to the CPU failure. Building the software index from scratch can take a long time and interrupt the ability of the control plane to function. Building and maintaining the software index prior to the CPU failure can remove this control plane downtime, however, building and maintaining a standby software index can be a complicated process that is difficult to implement and can lead to version problems because the active software index has one version (or structure) and the standby software index has another version or structure.